package tec;


 /**
 * Cette interface realise un bus.
 *<p>
 * A la montee chercher un place assise sinon un place debout,
 * A chaque arret si la destination est attente sortir. 
 *
 * Le client declenche la montee du passager dans un transport 
 * par la methode monterDans(). Un client accède au nom du passager.
 *
 * Un passager possede un nom. Il a trois etats : dehors, assis, debout. 
 * Dans un bus, un passager est forcement soit assis, soit debout. 
 * S'il n'est ni assis, ni debout, il est forcement dehors. 
 * Quand un passager est cree, il est dans l'etat dehors.
 *
 * Un passager possede une destination (un mumero d'arret). Quand un passager 
 * arrive a son arret de destination, il sort du transport.
 *
 * Les methodes accepterPlaceAssise(), accepterPlaceDebout(), accepterSortie() 
 * changent l'etat d'un passager.
 *
 * A chaque arret, la methode nouvelArret() est appelee par un objet bus. 
 * Le passager peut choisir de changer de place ou de sortir du bus. Si le bus 
 * accepte la demande, c'est le bus declenche les modificateurs de passager 
 * (les methodes comme accepterPlaceDebout()). 
 **/
interface Bus
{
   void allerArretSuivant();
   boolean aPlaceAssise();
   boolean aPlaceDebout();
   void demanderChangerEnAssis(Passager p);
   void demanderChangerEnDebout(Passager p);
   void demanderPlaceAssise(Passager p);
   void demanderPlaceDebout(Passager p);
   void demanderSortie(Passager p);
}
